package common.utils;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;


/**
 * Ingresa un nombre de archivo y el numero de numeros que tiene cada file de este.
 * Al ejecutar queda una matriz de numeros flotantes, con la misma estructura que el archivo 
 * de enntrada, pero los valores de esta matriz estan normalizados.
 * 
 * @author Martin
 *
 */
public class FromFileToFloatArrayForWords {
	
	private static final Logger  logger  = Logger.getLogger(FromFileToFloatArrayForWords.class);


	//Voy a poner como limite de normalizacion de valores a 
	//max -> 146; min -> -100; paso a positivos sumandoles 100 a todos
	//(los que queden negativos los paso al minimo 0, lo mismo los que se pasan para arriba 246)
	public static Float maxNorm=new Float(246.0);
	public static Float minNorm=new Float(0.0);
	public static Float deltaNorm=new Float(100.0);
	
	private List< List<Float> > matriz;

	public FromFileToFloatArrayForWords() {
		matriz=new ArrayList<List<Float> >();
	}	
	
	private boolean isNumeric(String valor){
		try {
			Float.parseFloat(valor);
			return true;
		} catch (Exception e) {
			return false;
		}
	}
	
	private static void contarComas(){
	    String entrada="0.19518164;0.223425;0.3110976;0.35749134;0.19998962;0.07860446;0.20352712;0.29315972;0.1894196;0.20396635;0.33656856;0.31948557;0.86825264;0.27322876;0.2694551;0.2697243;0.26852468;0.28323203;0.26664495;0.26389617;0.27978426;0.26874667;0.2743245;0.255716;0.28090832;0.27354047;0.27151906;0.2721897;0.27095228;0.2714104;0.27121204;0.2763223;0.27183548;0.26695195;0.27337518;0.27272815;0.27275175;0.27006912;0.27128762;0.20509988;0.21249604;0.30348888;0.35117203;0.22135635;0.042591784;0.18200454;0.32305142;0.16424614;0.22667915;0.29452938;0.3075837;0.86854553;0.27102786;0.26917174;0.27043277;0.27341768;0.28232995;0.26993686;0.256585;0.27133486;0.27695048;0.2746362;0.2540299;0.27940643;0.27204332;0.27228418;0.27320987;0.26920006;0.26852942;0.26976684;0.27977955;0.27340823;0.26195502;0.27404585;0.276072;0.2740836;0.2662057;0.27205747;0.19692911;0.21673727;0.30408868;0.34384194;0.24604332;0.070400655;0.17434387;0.3177097;0.18629299;0.20480706;0.27673322;0.3705315;0.8763667;0.2724778;0.27112234;0.2647038;0.26368365;0.28031322;0.28718042;0.26728728;0.25932905;0.27207637;0.27837208;0.26087818;0.27256283;0.27128762;0.27400807;0.27309653;0.2672306;0.26604512;0.26826966;0.27953866;0.27386636;0.258597;0.27550524;0.28021404;0.27531633;0.26064676;0.27354047;0.19001469;0.21319032;0.30733335;0.37196252;0.22918704;0.07295579;0.14161366;0.27812177;0.2162886;0.21729931;0.2772055;0.33154806;0.86497486;0.27558082;0.2752313;0.2588048;0.25416684;0.27408835;0.29585183;0.26980934;0.24033798;0.27786672;0.29322112;0.26411816;0.25667003;0.27550995;0.27568945;0.2726809;0.26623878;0.2634239;0.2689403;0.2766671;0.27265257;0.2606137;0.27592558;0.28008652;0.27424893;0.2608593;0.27487707;0.20567136;0.21924518;0.2732571;0.30607703;0.23820792;0.13988978;0.20072167;0.2528444;0.1643406;0.24108422;0.29018426;0.31087086;0.86702466;0.28155065;0.2724778;0.2522446;0.24894322;0.26927093;0.29193646;0.26717392;0.22883281;0.2863728;0.30666742;0.2678068;0.23606841;0.2800771;0.27482042;0.27217084;0.26904893;0.2658137;0.27185437;0.27133486;0.26707;0.2663663;0.27795175;0.27529743;0.27211416;0.26717862;0.27423003;0.21918377;0.22797324;0.2535009;0.2814562;0.23628093;0.12766199;0.1584369;0.19775093;0.20511876;0.3151971;0.24896684;0.26132688;0.89131963;0.28550377;0.27246365;0.24841897;0.23847713;0.27312014;0.29144529;0.26047203;0.23022138;0.2899953;0.30147687;0.2623848;0.24251527;0.2825944;0.2727848;0.27201024;0.27289817;0.26948345;0.274674;0.26997465;0.2688978;0.2746693;0.27391833;0.26598373;0.27294067;0.27721494;0.27122152;0.23067005;0.21229768;0.23279066;0.274367;0.22939956;0.14330448;0.14237405;0.14261493;0.26431653;0.32976276;0.27045166;0.22655635;0.9041284;0.28218824;0.27391833;0.255716;0.24115033;0.28062022;0.28662783;0.24787585;0.23677686;0.29633355;0.29128468;0.26288545;0.2560891;0.27946308;0.27005965;0.27345547;0.27749833;0.2738144;0.2749054;0.2724306;0.27460787;0.28147507;0.26855773;0.26177084;0.2747165;0.28448835;0.26870418;0.2456041;0.21954745;0.21023846;0.22077543;0.23976177;0.16904469;0.11371504;0.12491322;0.2568306;0.3209119;0.23956814;0.22684444;0.8999485;0.27974647;0.2751274;0.26212978;0.2460575;0.28235355;0.2889374;0.26451015;0.2502751;0.28303367;0.27139625;0.27184966;0.27330905;0.27248254;0.26768872;0.2744237;0.27892467;0.27939698;0.27331376;0.27313903;0.27999207;0.2842947;0.26681498;0.26471326;0.2788066;0.28251886;0.26787293;0.24397467;0.23360303;0.21403573;0.18272243;0.2801432;0.19290988;0.10303169;0.113719776;0.26070344;0.33521777;0.24987367;0.24912271;0.9005767;0.275288;0.27897662;0.27345076;0.2547761;0.2797323;0.29591793;0.2787499;0.26675355;0.27320987;0.2711365;0.27722442;0.28369015;0.26921424;0.26699445;0.27445674;0.2769174;0.28247163;0.27146238;0.2724353;0.28074303;0.2834918;0.26655048;0.26905838;0.27986455;0.2768371;0.26886475;0.25182897;0.233518;0.2140877;0.19812404;0.26323494;0.18809718;0.14121221;0.104141586;0.2626493;0.310016;0.25905985;0.25714704;0.89607567;0.26796737;0.2826086;0.2747354;0.2692095;0.28069106;0.2930558;0.28556046;0.27726218;0.27619478;0.2756847;0.28981113;0.2818671;0.26764622;0.26718336;0.27431506;0.275288;0.28313285;0.27150017;0.2699652;0.2753116;0.28024238;0.2708059;0.27486765;0.27747;0.2719205;0.27011633;0.24456976;0.24076305;0.23868023;0.20014074;0.2568873;0.25392124;0.16292843;0.12732667;0.26802877;0.3314536;0.28740242;0.27040443;0.8927035;0.26360807;0.28301477;0.2745512;0.28249997;0.27933085;0.28730324;0.28161678;0.28130978;0.2730682;0.2749999;0.29378787;0.2765679;0.26676303;0.26942676;0.27269036;0.27406946;0.2817254;0.27124512;0.26687637;0.27366328;0.279959;0.2735688;0.27170798;0.26933232;0.26817518;0.27060753;0.22570148;0.26957792;0.212156;0.1986719;0.29540786;0.2443903;0.15214117;0.14498585;0.2747118;0.3417875;0.31041273;0.26609707;0.882686;0.2620684;0.28525347;0.2785799;0.28841314;0.28062493;0.28363347;0.28019044;0.2847717;0.2777014;0.28436553;0.29148307;0.27702132;0.26485968;0.2722086;0.26974794;0.27567527;0.277385;0.26952595;0.26746202;0.2766104;0.28105;0.2735452;0.26761788;0.2595841;0.2675612;0.27143404;0.21564154;0.27120733;0.22831802;0.23552054;0.30128324;0.24185404;0.14622328;0.14041874;0.26058537;0.3349061;0.333697;0.26804295;0.8816612;0.26592705;0.2816829;0.28244328;0.29435936;0.276549;0.27557135;0.2903212;0.30336136;0.28085637;0.2658987;0.26362225;0.26755175;0.2642079;0.2715285;0.26722115;0.2762987;0.27324292;0.27034774;0.2675376;0.27968508;0.28169706;0.270565;0.2634239;0.2587387;0.26869944;0.27209997;0.21719539;0.28513068;0.2527405;0.26306492;0.28471977;0.25285387;0.1910868;0.16202162;0.2954409;0.3706826;0.3338812;0.28401133;0.86646736;0.26840663;0.27258644;0.2897261;0.29076517;0.2702675;0.27678987;0.3048349;0.31204218;0.28059188;0.25889453;0.2433843;0.26474157;0.2666591;0.26767927;0.26497772;0.2732382;0.2677265;0.2713679;0.26734868;0.27861297;0.27831542;0.26520914;0.26135048;0.2657334;0.27235502;0.2717127;0.21901375;0.28195682;0.271179;0.28031322;0.28554156;0.2680949;0.23562445;0.27617118;0.30251592;0.28706238;0.23434451;0.23976651;0.8624197;0.25864422;0.26601678;0.2910391;0.2881014;0.27681822;0.2689781;0.30829212;0.31672737;0.26500607;0.24541518;0.2520982;0.2667583;0.26691887;0.2633908;0.26506746;0.26802406;0.26171416;0.2719205;0.26899698;0.27229837;0.26954013;0.266678;0.26983294;0.28007236;0.27922222;0.2702958;0.2066065;0.26769817;0.27992594;0.27067363;0.2951717;0.2557679;0.27217084;0.2778809;0.29725927;0.30075425;0.21755908;0.2444942;0.86615086;0.24466422;0.2585356;0.2810453;0.27074447;0.27789977;0.26422206;0.3048302;0.31022382;0.25223044;0.24192964;0.26647964;0.27976063;0.26263514;0.2645196;0.26972905;0.26271543;0.25964078;0.26903948;0.26716447;0.26736283;0.26567674;0.27284148;0.2757272;0.28411052;0.27858463;0.26898754;0.1547152;0.25056323;0.31047887;0.31278366;0.32071826;0.22584318;0.28769997;0.30668157;0.22528113;0.2375042;0.29289997;0.26214868;0.8569884;0.23530802;0.25461552;0.26746672;0.2535009;0.27288872;0.26740533;0.29238516;0.2925363;0.2689781;0.26410398;0.2930086;0.29671612;0.25827584;0.2715285;0.27284148;0.25994778;0.26216286;0.2649116;0.2680949;0.26411343;0.2603681;0.28113976;0.28234884;0.27616173;0.27361605;0.27030525;0.11323331;0.2340706;0.27887273;0.24110784;0.29719314;0.23565279;0.32975805;0.3384389;0.23577087;0.24567494;0.2775503;0.31219327;0.8229168;0.24324262;0.2675045;0.2556593;0.24682735;0.25799716;0.25396848;0.29016063;0.29308414;0.2833737;0.26874194;0.28403965;0.28324148;0.25647166;0.2788444;0.27449453;0.264803;0.27300206;0.26578537;0.26991326;0.2616008;0.25690618;0.28267944;0.2816215;0.27135375;0.26660717;0.27361605;0.082798466;0.21240631;0.24959028;0.203154;0.28954193;0.25574905;0.30932647;0.34912696;0.31872046;0.27568;0.30994987;0.3300556;0.8159693;0.25755793;0.26630488;0.24403135;0.25143224;0.2518951;0.2551445;0.2767521;0.26770288;0.29569596;0.28432775;0.26469436;0.27366328;0.262092;0.28117752;0.2735263;0.2727376;0.280403;0.2704611;0.27560914;0.2674148;0.26165277;0.2754155;0.2766104;0.2699463;0.26469907;0.27606255;0.099347755;0.2648502;0.22923428;0.20017853;0.24131563;0.15121546;0.35271642;0.36264881;0.30797568;0.26593176;0.26979044;0.2673109;0.8095744;0.26833105;0.26572397;0.2573265;0.2773472;0.2578791;0.26047203;0.26122296;0.2477436;0.2928291;0.2804927;0.2779659;0.26489273;0.2693701;0.278254;0.27048942;0.2807572;0.2811917;0.27614284;0.28352484;0.27048;0.26637572;0.2669236;0.2705839;0.27510852;0.27028635;0.276601;0.09001989;0.207263;0.1960176;0.23097232;0.24868347;0.1843424;0.30055588;0.2736444;0.30821657;0.28957024;0.26082623;0.293462;0.8146705;0.26921424;0.2636978;0.270872;0.28081858;0.26582786;0.28275028;0.28448835;0.26403788;0.2818907;0.28183404;0.28634447;0.2699416;0.27269036;0.27591616;0.2743434;0.28383183;0.27532578;0.27814066;0.28105;0.2718166;0.27653486;0.2617425;0.26413232;0.27318153;0.271963;0.2747165;0.091842964;0.2058272;0.2328568;0.25450218;0.24759246;0.21428606;0.28081858;0.2554562;0.34572172;0.28175375;0.3325021;0.29551646;0.81097245;0.26925674;0.2618228;0.28658533;0.27866492;0.27229837;0.2983408;0.27926472;0.26734868;0.26545477;0.2634711;0.28931522;0.2770969;0.2747354;0.275288;0.27620897;0.2774889;0.26907727;0.27695048;0.27437645;0.2688789;0.27852795;0.26237065;0.26446766;0.26319245;0.2718969;0.27293596;0.07319193;0.20096256;0.2427089;0.2206479;0.25611272;0.27853268;0.40827748;0.3634706;0.3498543;0.3174972;0.35087445;0.30622816;0.8192895;0.27723384;0.28053048;0.2891263;0.2679721;0.27595866;0.2820182;0.26738173;0.2811303;0.25865367;0.25406766;0.26549253;0.26793903;0.27354994;0.27655846;0.27628455;0.2713443;0.2707256;0.27342242;0.26798627;0.26024532;0.2709098;0.2674384;0.26904893;0.2603256;0.26802406;0.27137735;0.0946059;0.21767715;0.2793781;0.23923752;0.23965786;0.23638012;0.33574677;0.29504418;0.25498864;0.20989369;0.3119052;0.28698206;0.82149994;0.28132394;0.27891994;0.27619478;0.2697149;0.27814066;0.2732949;0.25474304;0.27240697;0.25685424;0.25726983;0.24491927;0.26595068;0.27416864;0.2776117;0.27254865;0.2676651;0.27346492;0.26651743;0.26551142;0.26323494;0.26848218;0.27390888;0.27831542;0.2669425;0.27033833;0.27306348;0.115363374;0.24456032;0.25895596;0.21901847;0.2730068;0.2239398;0.25056794;0.30005527;0.28740242;0.23639902;0.23916195;0.27799425;0.81771684;0.28654283;0.2771394;0.2733563;0.27949142;0.2705792;0.2757792;0.2385338;0.25661805;0.2639434;0.27073976;0.25074267;0.25620717;0.27041388;0.27704966;0.2661254;0.26932758;0.27550995;0.25896066;0.2662246;0.26843494;0.26643714;0.27565637;0.27912778;0.27782422;0.2779187;0.27622312;0.1179421;0.21920268;0.24627948;0.24445643;0.27041858;0.24862207;0.27394193;0.2897686;0.3017839;0.24921246;0.25350565;0.27994013;0.8231765;0.29321167;0.26681972;0.27335158;0.28078553;0.24813561;0.26957792;0.25042152;0.262569;0.27291232;0.28727016;0.27195355;0.27521715;0.28216937;0.27617118;0.26668745;0.2730729;0.2725959;0.25803024;0.26384422;0.2732902;0.26986602;0.27607673;0.27470234;0.28167343;0.28391215;0.27721494;0.13479841;0.22647132;0.26659772;0.25606075;0.23420283;0.2918609;0.27240226;0.28975445;0.2867459;0.29211122;0.27435756;0.2313596;0.8110857;0.29711285;0.25777993;0.2777581;0.2805541;0.22632492;0.2555554;0.25227293;0.2588001;0.2694551;0.27525964;0.28165457;0.29346672;0.29121858;0.27283204;0.2692095;0.2720008;0.2694504;0.26517138;0.26276737;0.27809343;0.27327126;0.27435756;0.26808074;0.2776117;0.2851779;0.27547216;0.19150242;0.20137817;0.28288725;0.26521388;0.14030538;0.19087428;0.21749768;0.25360483;0.26043895;0.25895596;0.29464746;0.32695258;0.8762297;0.29746708;0.2626021;0.2799165;0.27271867;0.23098649;0.24319066;0.25488;0.26121825;0.2750471;0.26909146;0.27840042;0.30743727;0.29040623;0.26765093;0.27445674;0.26989433;0.26900643;0.2783107;0.2695118;0.27906635;0.27581698;0.27152377;0.26730144;0.2728462;0.27414975;0.26872307;0.20469843;0.18293968;0.270003;0.25197068;0.11023893;0.17115112;0.18072931;0.25270745;0.29592738;0.24838594;0.26743367;0.3623938;0.88784355;0.2891452;0.2658704;0.2706453;0.27133486;0.2455852;0.24337958;0.2673345;0.26420316;0.2752266;0.26080734;0.2761334;0.30654934;0.2842097;0.26489744;0.27747473;0.26853412;0.2705414;0.2851401;0.276771;0.27898136;0.2777156;0.26958263;0.27127346;0.27250144;0.26426458;0.26521388;0.21088079;0.19452986;0.28471503;0.25065768;0.12790287;0.16549301;0.23474598;0.2549367;0.31300095;0.2570951;0.28952774;0.3921627;0.87738687;0.27600116;0.27560914;0.26695666;0.27099952;0.27062643;0.26378754;0.27877355;0.2795245;0.26820353;0.27157572;0.27949616;0.27999678;0.26985183;0.26462823;0.27648762;0.26894504;0.27235028;0.2834115;0.28081858;0.2741639;0.2759728;0.26858607;0.27297845;0.27158046;0.25971162;0.26603094;0.21139088;0.19980541;0.25947547;0.26057592;0.10889763;0.16201217;0.24101336;0.25065768;0.27716774;0.23762698;0.29814717;0.3720759;0.87213016;0.27290288;0.2792175;0.26747146;0.2746929;0.27276593;0.26966766;0.27579805;0.278783;0.26136467;0.27095702;0.28416717;0.26908672;0.2681327;0.26689056;0.27608618;0.27291232;0.27208582;0.28012902;0.28165928;0.26974794;0.2717127;0.27083895;0.27493376;0.26977155;0.26115212;0.2681563;0.20872238;0.2115609;0.26348054;0.25647166;0.1346756;0.15493244;0.22179085;0.2928244;0.25140393;0.26277682;0.31734607;0.36265355;0.8739013;0.26928982;0.27891994;0.2667819;0.2733563;0.27500933;0.27470705;0.2620306;0.2743481;0.26546893;0.26947874;0.27285567;0.26528475;0.2691623;0.26767457;0.27376246;0.2740836;0.2719205;0.27756447;0.28052104;0.2697149;0.2669236;0.2718827;0.27330905;0.26767927;0.2661396;0.26918116;0.21085244;0.21107444;0.25854033;0.26309326;0.11124021;0.16532299;0.20674819;0.26824132;0.27410725;0.24088113;0.31491846;0.36314473;0.8708172;0.2675045;0.28520152;0.27585474;0.2711601;0.2846017;0.28678843;0.26500136;0.2659129;0.27135375;0.277078;0.26888362;0.26024058;0.26590344;0.26572397;0.2720244;0.2736444;0.27092397;0.2820135;0.2812531;0.27670017;0.26909146;0.27255338;0.27485347;0.26714557;0.26650798;0.26792958;0.19817598;0.22405317;0.25965965;0.25673613;0.14234573;0.17794749;0.20259197;0.25844586;0.28244328;0.24341264;0.28599498;0.36360288;0.8644129;0.25762406;0.28198516;0.27375302;0.2729265;0.29308885;0.29840222;0.2733185;0.26113322;0.26317355;0.2756186;0.26610652;0.25568765;0.25743514;0.26551616;0.26940316;0.27158517;0.2719205;0.28220716;0.2776731;0.28275973;0.27299735;0.27339408;0.27607673;0.27063113;0.2667819;0.26840663;0.1947471;0.2601178;0.2812153;0.25680226;0.16863379;0.22501193;0.21618469;0.23796704;0.258989;0.27327126;0.2988037;0.3133646;0.846952;0.24791835;0.27837682;0.27276593;0.27009743;0.31434697;0.3046507;0.29421294;0.2714057;0.26582786;0.2827125;0.2638395;0.24698322;0.25419992;0.267684;0.26711252;0.26880807;0.27167964;0.27585474;0.2698235;0.28110668;0.2765443;0.27591616;0.2729643;0.2713868;0.27023914;0.27133957;0.14546289;0.23753726;0.26147327;0.264803;0.2119907;0.2576571;0.22421846;0.25419518;0.2154054;0.26522332;0.29650357;0.30653518;0.8135842;0.24721935;0.26989907;0.26681498;0.27405056;0.31174463;0.29470414;0.3017839;0.2771441;0.27575555;0.2876055;0.2691056;0.24638338;0.2576146;0.27431977;0.26933232;0.26942676;0.27114594;0.2686286;0.26338136;0.2745937;0.27700242;0.27602005;0.26826018;0.27178827;0.2744095;0.27537298;0.117370635;0.23678158;0.26201642;0.25010982;0.28871068;0.2892727;0.3075695;0.26796737;0.27733776;0.28410104;0.2694126;0.26715502;0.8077986;0.25167784;0.26736283;0.26391506;0.2695543;0.29510087;0.2783107;0.2968578;0.2811917;0.28520152;0.2764829;0.26488328;0.25665113;0.26306966;0.27928364;0.27158517;0.2716513;0.27177882;0.25780827;0.26093486;0.26579952;0.27368218;0.26896393;0.2631452;0.27302095;0.2782304;0.27644038;0.11351667;0.22577704;0.24390383;0.2708909;0.2816026;0.25990528;0.30637932;0.2697243;0.29261658;0.31658092;0.2867837;0.25919208;0.8126349;0.26792014;0.27472597;0.26587984;0.26947874;0.28642005;0.26904422;0.28553212;0.28181043;0.2741639;0.2605901;0.2650958;0.26347584;0.2704375;0.279567;0.273838;0.27418754;0.27259117;0.25729817;0.2650722;0.2628807;0.27369162;0.26912922;0.26308855;0.2727234;0.27673793;0.2752502;0.1096769;0.24338903;0.25013342;0.24208547;0.2498831;0.2559899;0.29995608;0.2767285;0.28695372;0.270565;0.2686333;0.26084512;0.8033306;0.27454647;0.27445674;0.27205747;0.2718402;0.25661805;0.2627107;0.27191105;0.27805564;0.25199902;0.2525091;0.27150488;0.27014938;0.2705461;0.27653486;0.2728226;0.27422532;0.27411196;0.26291853;0.27131596;0.2648266;0.27164185;0.2723928;0.2700266;0.27384275;0.2747543;0.27375776;0.12946144;0.24841897;0.23737195;0.2567692;0.3040556;0.2600753;0.29624856;0.29943183;0.22198449;0.21551402;0.2629374;0.2676226;0.8085732;0.27419224;0.27611452;0.27424422;0.27643567;0.25804442;0.26841605;0.26921424;0.28773773;0.278561;0.25560263;0.26997936;0.26388672;0.27069253;0.2713632;0.26973376;0.2715096;0.27344602;0.26898754;0.27342242;0.26764148;0.26966766;0.2781737;0.27646402;0.27538246;0.2727423;0.27208108;0.12269815;0.23831181;0.26613486;0.25694394;0.20113258;0.24329928;0.31275535;0.2839641;0.2132234;0.23774035;0.27941114;0.25423768;0.8031134;0.27178353;0.2713443;0.2714104;0.27721024;0.26444402;0.2757697;0.2697196;0.27699298;0.28552267;0.2696818;0.2722086;0.2707681;0.27228418;0.2698046;0.26882696;0.26824602;0.2718402;0.2784571;0.27381915;0.26925674;0.26613012;0.2757697;0.27479208;0.27379552;0.27229837;0.27179298;0.11852304;0.24945804;0.24767749;0.28619805;0.23677686;0.24891019;0.28660896;0.3453533;0.36283776;0.25157395;0.27184966;0.2224993;0.80677366;0.26667327;0.26552087;0.26430234;0.27459845;0.26799572;0.27019662;0.26539335;0.27124038;0.2888382;0.27488652;0.28222603;0.2674384;0.2705414;0.27060753;0.2687136;0.26993212;0.2707067;0.2788444;0.27198663;0.26926148;0.2631594;0.26278627;0.27277064;0.27313903;0.2737483;0.2714246;0.114621855;0.24015377;0.24259084;0.25397792;0.24630782;0.28098863;0.29392958;0.2793025;0.28469613;0.24150456;0.26578537;0.2778195;0.80622107;0.2678918;0.26445347;0.2588237;0.27252978;0.2844789;0.27148598;0.26066095;0.25751072;0.26627654;0.2574021;0.2749196;0.27043277;0.27013996;0.27261478;0.2717363;0.27320987;0.2725345;0.27640262;0.26919064;0.2692095;0.2687136;0.26308382;0.2752077;0.2710798;0.27216136;0.27137735;0.107438214;0.21567461;0.21122085;0.27180716;0.26201642;0.23278594;0.273191;0.2985156;0.27101368;0.22862972;0.32144088;0.23359357;0.80027485;0.26972905;0.2637025;0.27075866;0.27287927;0.28281167;0.2710562;0.26061842;0.2538504;0.24268058;0.2661632;0.27487707;0.27337044;0.2694457;0.27474958;0.27505183;0.2754769;0.27235973;0.27212358;0.27044693;0.2705461;0.27262896;0.26789653;0.2796284;0.26924732;0.2732524;0.27217084;0.10826001;0.21802665;0.21904682;0.26733923;0.25147477;0.24935414;0.26331526;0.2354922;0.23108095;0.17678091;0.26977628;0.24141009;0.7976158;0.27390414;0.27149072;0.27480623;0.2812956;0.27961424;0.2618653;0.2587245;0.2698235;0.26459518;0.29065183;0.27185437;0.26917174;0.27028635;0.27437645;0.27668598;0.27539662;0.26933703;0.26588455;0.2729265;0.2770544;0.2797748;0.27852795;0.28340206;0.27141514;0.27244005;0.2724684;0.1109096;0.21959941;0.25379845;0.2844836;0.28880513;0.26056647;0.24556158;0.27707326;0.24360628;0.25531453;0.28479534;0.24812616;0.7988721;0.2779848;0.27782422;0.27426782;0.27257228;0.2716088;0.26781154;0.2596644;0.26879862;0.2697196;0.2969617;0.27055556;0.2749007;0.2718733;0.27308708;0.27610508;0.2718591;0.2666969;0.26627183;0.27513686;0.28299117;0.27945837;0.28095555;0.27614284;0.27211416;0.2724306;0.27253923;0.122967355;0.23620537;0.2358842;0.2946805;0.27155212;0.21698287;0.24192964;0.27971342;0.26194087;0.32197458;0.2839452;0.25698647;0.7989241;0.27620897;0.28138536;0.27460316;0.25992414;0.26006112;0.2783107;0.28698206;0.2894758;0.2859619;0.2995688;0.2747165;0.27242112;0.27182606;0.27056974;0.27174103;0.26969126;0.2670086;0.2700927;0.27895302;0.28532904;0.2756422;0.2756422;0.26652214;0.27158517;0.27303514;0.271963;0.13058078;0.23626678;0.21470167;0.2615583;0.2505868;0.22859666;0.22275907;0.26096794;0.24474451;0.28140423;0.30770648;0.24087167;0.799557;0.27456537;0.2798551;0.27071142;0.25760043;0.2645007;0.27909;0.30201057;0.28188598;0.27734247;0.28299117;0.27457482;0.27446145;0.2719394;0.2694126;0.26867583;0.26918116;0.27256283;0.27505183;0.27702132;0.27708745;0.2705461;0.2727045;0.26408508;0.26942205;0.27292177;0.2717741;0.120029666;0.25718954;0.2521832;0.21898541;0.21146172;0.29745764;0.35018015;0.33149138;0.30087706;0.3021381;0.2724731;0.24770111;0.7969641;0.26901588;0.26974794;0.26559645;0.26438737;0.27418754;0.29155862;0.30476406;0.2820607;0.27955756;0.27079645;0.26833105;0.27514157;0.27062643;0.2708295;0.2681563;0.2694504;0.27828234;0.27799895;0.27032414;0.25919682;0.26308855;0.2689356;0.26204005;0.26874667;0.27353105;0.2719819;0.12577753;0.24893852;0.23977123;0.25089854;0.28190488;0.2563347;0.3420567;0.30118406;0.25141335;0.3207608;0.3039706;0.2656437;0.80010957;0.26921898;0.26758483;0.26524696;0.27372468;0.2803699;0.28685454;0.27676156;0.26579952;0.27700713;0.27234086;0.26142606;0.27871215;0.27190635;0.2721472;0.27055556;0.27262896;0.27772975;0.27390888;0.26775956;0.25201318;0.26574287;0.27115068;0.26516664;0.27050835;0.27119318;0.27206692;0.11101351;0.21917434;0.19188972;0.26250762;0.26739118;0.30147216;0.34667572;0.31047887;0.296957;0.2968531;0.26801932;0.26086876;0.7923355;0.2736019;0.26886946;0.26515722;0.28384128;0.28268415;0.26661187;0.23614398;0.25353396;0.27137265;0.25564986;0.2655823;0.2785232;0.27230307;0.2730493;0.27349797;0.27607673;0.27414504;0.27158517;0.26584205;0.25945657;0.27005494;0.26923785;0.26985183;0.275543;0.27237862;0.27197248;0.12173938;0.23374943;0.21165064;0.2489763;0.26503912;0.30143437;0.24888185;0.24103226;0.27229837;0.28631613;0.25762406;0.2684208;0.8019563;0.27357355;0.2736255;0.27464566;0.277078;0.27035248;0.27092868;0.23696105;0.2654217;0.27774394;0.25696757;0.26906312;0.2693087;0.27199134;0.27129236;0.2724542;0.27464566;0.270003;0.2708153;0.26989907;0.27575555;0.27452287;0.2686522;0.2719016;0.27667183;0.27272815;0.27129236;0.13061857;0.24968946;0.23258758;0.27970397;0.27388054;0.2485229;0.21805026;0.2698046;0.28787;0.23817486;0.26410872;0.27950087;0.7981259;0.27264783;0.27476847;0.2818482;0.27399862;0.27768725;0.26930398;0.2625029;0.27307764;0.26594123;0.26831686;0.28280225;0.28229687;0.27100897;0.26969126;0.27089563;0.27139154;0.26629546;0.26892614;0.2735688;0.28767633;0.27661985;0.2694693;0.2759067;0.2716324;0.2714057;0.2713018;0.12439841;0.24237359;0.2332063;0.26826018;0.2709948;0.27801788;0.23173745;0.28918296;0.28523457;0.2754958;0.29179952;0.24343152;0.7977245;0.2667205;0.2674573;0.27070197;0.2692095;0.27751252;0.27557608;0.28291085;0.26920006;0.26354668;0.26606876;0.27673793;0.2810264;0.26957318;0.27121678;0.2709948;0.26794848;0.2672778;0.26825076;0.269781;0.2825661;0.27456066;0.27126402;0.2730257;0.26761317;0.27167493;0.27207637;0.113488354;0.22926731;0.23091093;0.2634333;0.29342422;0.30025834;0.30832994;0.29236627;0.26075065;0.2843986;0.30549613;0.3254129;0.7900543;0.26605457;0.26699445;0.26465657;0.2598061;0.26429763;0.27268562;0.29210648;0.27531633;0.26638046;0.2711979;0.2604673;0.27026275;0.2705792;0.27380496;0.272969;0.26793903;0.26906782;0.26571923;0.26722586;0.27060753;0.2746315;0.27611452;0.270258;0.26656467;0.26793903;0.27308235;0.10446746;0.22180974;0.20655455;0.24371962;0.2833926;0.29400042;0.25886622;0.21632639;0.24415414;0.23410837;0.2611852;0.29116663;0.7944278;0.2735263;0.27305874;0.26355138;0.26112852;0.25886148;0.25870562;0.2755572;0.2776778;0.2744001;0.26121825;0.25885203;0.27425367;0.27316266;0.27581224;0.2749385;0.2718969;0.27228418;0.2682838;0.26707473;0.2650722;0.27618536;0.27696463;0.2719158;0.27258173;0.27068308;0.2733185;0.11141024;0.23550166;0.20977089;0.23155324;0.22973962;0.24451308;0.30558115;0.3233773;0.28086582;0.2554326;0.2223151;0.24750745;0.7932329;0.27883494;0.277385;0.26568148;0.2639481;0.25617883;0.25443134;0.25977775;0.2825708;0.28164512;0.2625879;0.2651336;0.2659554;0.2751841;0.27530688;0.27443784;0.273668;0.27454647;0.2722039;0.26967236;0.2654075;0.27517936;0.2755572;0.2726809;0.27727163;0.2735594;0.2727848;0.13363655;0.24511291;0.20210549;0.23040555;0.23771672;0.23999321;0.25147003;0.3026293;0.28773773;0.23663989;0.26821768;0.29421768;0.8025041;0.27994484;0.27750778;0.27022967;0.26911032;0.26355138;0.2606326;0.26499662;0.2870718;0.2812909;0.27051306;0.27788562;0.27716774;0.2744284;0.2732807;0.27278954;0.27367747;0.27399862;0.2735641;0.27289346;0.2702958;0.27421588;0.27322876;0.27453703;0.27696937;0.27359244;0.27206692";
	    String[] cant = entrada.split(";");
	    System.out.println(cant.length);
	}
	
	public static void main(String[] args) {

	    contarComas();
	    
//	    String sCadena="-hola-chau-dia";
//	
//		String[] val=getValores(sCadena);
//		
//		for (int i=0;i<val.length;i++){
//			System.out.println(val[i]);
//		}
		
	}
	
	
	
	/**Obtengo los valores flotantes que contienen los coeficientes y los paso a una matriz
	 * de la misma forma que estaban en el archivo
	 */
	public void executeWithOutNormalize(File archivo) {
		logger.info("procesando arch:" + archivo.getAbsolutePath());
		FileReader fr;
		try {
//			nombreArchivo="per-01.txt";
			//si pongo directamente un nombre, lo toma desde el raiz del proyecto
			fr = new FileReader(archivo);
			BufferedReader bf = new BufferedReader(fr);
		
			String sCadena=null;
			
			List<Float> listLinea =null;
			
			while ((sCadena = bf.readLine())!=null) {

				if ( isNumeric(sCadena.substring(0,1)) ){
				
					String[] valores=sCadena.split(" ");
	
					listLinea = new ArrayList<Float>();
	
					for (String valor:valores){
						
						if ( valor!=null && !valor.equals("") ){
							
							if ( !isNumeric(valor) ){
								//puede suceder si se me junta el menos de un numero siguiente con el actual, quedan 2 numeros
								String[] subValores=sCadena.split("-");
								
								//si es mayor a 1, entonces voy separando los valores
								if (subValores.length>1){

									String[] valoresStrings = getValores(valor);
									
									for (String floatVal:valoresStrings){
										
										if ( floatVal!=null && !floatVal.equals("") && isNumeric(floatVal) ){
											Float val=Float.parseFloat(floatVal);
											listLinea.add(val);
											
									//		System.out.println("Original: "+val );
																			
										}

									}
								}
							}
							else{
							
								Float val=Float.parseFloat(valor);
								listLinea.add(val);
								
						//		System.out.println("Original: "+val  );
						
								}
							}
					}
					matriz.add(listLinea);
				}
			}

		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
			
		 logger.info("fin proceso.");
	}

	
	/**
	 * Me llega varios numeros unidos por menos, y los tengo que separar
	 * ejemplo "3.253-2.365 -> 3.253 -2.365"
	 * @param valor
	 * @return
	 */
	private static String[] getValores(String cadena) {
		
		String resultado="";
		
		String[] valores = cadena.split("-");
		
		if (!valores[0].equals("")){
			resultado+=valores[0]+";";
		}
		
		for (int i = 1; i < valores.length; i++) {
			resultado+="-"+valores[i]+";";
		}

		return resultado.split(";");
	}

	private Float normaliza(Float valor){
		valor+=deltaNorm;
		if (valor<minNorm)
			valor=minNorm;
		if (valor>maxNorm)
			valor=maxNorm;

		return valor/maxNorm;
		
	}
	
	/**
	 * Le paso el maximo y minimo y me setea el rango
	 * @param max
	 * @param min
	 */
	public static void setMaxMinNormalizedValues(Float max,Float min){
		
		deltaNorm=-min;
		maxNorm=deltaNorm+max;
		minNorm=new Float(0.0);

	}
	
	public void mostrarValores() {
		for (List<Float> linea:matriz){
		
			for (Float valor:linea){
				System.out.print(valor+"  ");
			}
			System.out.println("nueava linea");
		}
		
	}


	public List<List<Float>> getMatriz() {
		return matriz;
	}


	public void setMatriz(List<List<Float>> matriz) {
		this.matriz = matriz;
	}
	
	/**
	 * Toma la matriz y me devuelve una lista con los valores de la matriz, 
	 * una fila a continuacion de la otra, todos normalizados
	 *
	 * @return devuelve una lista de valores reppresentando cada valor a una fila de la matriz normalizados
	 */
	public List<Float> getAllValuesByFileByRowAndNormalice(){
		
		List<Float> lista= new ArrayList<Float>();

		for (List<Float> linea:matriz){
		    for(Float valor:linea){
		        lista.add(normaliza(valor));
		    }
		}

		return lista;
		
	}
	
//////////////////////////////////////////////////////////////////////
/////////obtiene maximos y minimos por coeficiente////////////////////
	
	public static Float coefmaximo=new Float(0.0);
	public static Float coefminimo=new Float(0.0);

	public static Float secondMax=new Float(0.0);
	public static Float secondMin=new Float(0.0);

	public static void resetMaxAndMin(){
		coefmaximo=new Float(0.0);
		coefminimo=new Float(200.0);
		
		secondMax=new Float(0.0);
		secondMin=new Float(200.0);
	}
	
	public void getMaxAndMinByWord(File archivo) {
//		System.out.println("procesando arch:" + archivo.getAbsolutePath()+ ", para el coef "+coef);
		FileReader fr;
		try {

			fr = new FileReader(archivo);
			BufferedReader bf = new BufferedReader(fr);
		
			String sCadena=null;
			
			while ((sCadena = bf.readLine())!=null) {

				if ( isNumeric(sCadena.substring(0,1)) ){
				
					String[] valores=sCadena.split(" ");
	
					for (String valor:valores){
						
						if ( valor!=null && !valor.equals("") && isNumeric(valor) ){
							
							Float val=Float.parseFloat(valor);
								
							//obtener maximos y minimos
							if (val>coefmaximo)
							    coefmaximo=val;
							if (val<coefminimo)
							    coefminimo=val;
								
							//actualizo segundos maximos y minimos
							if (val>secondMax && val<coefmaximo)
							    secondMax=val;
							if (val<secondMin && val > coefminimo)
							    secondMin=val;
								
						}
					}
				}
			}
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
			
//		 System.out.println("fin proceso.");
	}
	
	
	
}
